UBB Parser

Door Jorik , 24 jaar geleden, 14.033x bekeken

Met dit script kun je UBB toepassen.
Het script ondersteund:

- Code highlighting (automatisch alles tussen < ? en ? >)
- Werkt HTML codes weg
- Zet \n om in <br>
- Cursief ([i] [/i] -> <i></i>)
- Onderstreept ([u] [/u] -> <u></u>)
- Vet ([b] [/b] -> <b></b>)
- Doorstreept ([s][/s] -> <s></s>)
- Links maken ([url=http://www.bla.nl]Blaat.nl[/url], [url]http://link[/url] etc)
- Automatisch link (http://iets.nl -> klikbaar)
- Quotes ([quote=Naam]quote[/quote] of [quote]quote[/quote])
- Plaatjes ([img]locatie[/img] -> <img src="" alt="Plaatje" title="Plaatje" />)
- Kleur ([color=blue]tekst[/color])
- Grootte ([size=1]grotte 1[/size])
- Smileys


Het script pas je toe dmv ubb($bericht); waarbij $bericht hetgene is waar de UBB codes in gewone codes worden omgezet.
LET OP: Gebruik voor het script geen htmlspecialchars(), dit is in het script al verwerkt.
LET OP2: Voor smileys moet een spatie, dus niet []:P[] maar [] :P[] (hokjes om aan te geven wat erom heen staat). Dit omdat de smileys anders ook op ongewenste plaatsen komen (bv http://iets.nl, :/ zal een smilie worden).

Download (inclusief smilies):
http://www.phphulp.nl/voorbeeld/251ubbparser/ubb.zip

Voorbeeld: hier.

LET OP: De ubb parser van PHPhulp wijzigt geloof ik het script een beetje..
Download em daarom liever..

Voorbeeld: http://berknet.be.funpic.de/voorbeelden/ubb/

Gesponsorde koppelingen

PHP script bestanden

  1. ubb-parser

 

Er zijn 57 reacties op 'Ubb parser'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Johan
Johan
24 jaar geleden
 
0 +1 -0 -1
?>coooooooooooool had ik net nodig:)
Steff   an
Steff an
24 jaar geleden
 
0 +1 -0 -1
Wat ziet dit letter type er mooi uit :P
Jorik
Jorik
24 jaar geleden
 
0 +1 -0 -1
welk lettertype :S..


24 jaar geleden
 
0 +1 -0 -1
Ga ik gebruiken! Geweldig had ik net nodig!
En inderdaad het lettertype van de reacties en zo is nu in Courier
Jorik
Jorik
24 jaar geleden
 
0 +1 -0 -1
Wat is het verschil :S..

Fijn dat ik je ermee heb kunnen helpen :).. [tevens mezelf :P]


24 jaar geleden
 
0 +1 -0 -1
hahaha, op sm zitten er toch wel veel beter hoor... werk met een array ==> veel makkelijker om er nog toe te voegen ^^
Jorik
Jorik
24 jaar geleden
 
0 +1 -0 -1
SM :S?..

is me eerste script met dat preg_replace enzo.. dus vind dit al heel wat :).

En arrays vind ik niet fijn werken..
Micha
Micha
24 jaar geleden
 
0 +1 -0 -1
Kan je ook een quote in een quote doen?
Jorik
Jorik
24 jaar geleden
 
0 +1 -0 -1
jah.. maar of het goed gaat is het tweede..
En bij het voorbeeld kun je dat proberen.. daarzit een textveld..
(heb het gerepareerd :P)..

En het werkt niet..
Misschien bouw ik die functie er eens nog eens in... anders moet je gewoon bij het quoten een
Quote:
[ /quote] binne de quote tags door [..] vervangen..

*Vraag maar op het forum hoe.. want ik ben er nog nie achter :$


24 jaar geleden
 
0 +1 -0 -1
Grote fout.. hij vervangt de : in http:// in het woord smilie :S


24 jaar geleden
 
0 +1 -0 -1
edit: ik had eerst de map fout staan maar nu heb ik soms dit:

url=httpSmilie/www.bla.nl ] Blaat.nl [ /url]
hier is het woord smilie ook echt een smilie

en ik heb dit:

Smilie/members.lycos.nl/berknet/pirats2.JPG" alt="Plaatje" title="Plaatje" />

en hier is het woord zoals ik het hier heb geplakt..


24 jaar geleden
 
0 +1 -0 -1
ik heb het probleem inmiddels verholpen door:

$string = str_replace(":/","<img src=\"images/smilies/happy.gif\" alt=\"Smilie\" />",$string);

aan te passen tot:

$string = str_replace(" :/","<img src=\"images/smilies/happy.gif\" alt=\"Smilie\" />",$string);

door die extra spatie gaat ie niet meer smilies plaatsten in urls en heb je nergens meer last van..
Jorik
Jorik
24 jaar geleden
 
0 +1 -0 -1
In de code staat toch ook die extra spatie?..


24 jaar geleden
 
0 +1 -0 -1
jah nu je het zegt.. maar in een van de downloads niet.. en daarvan had ik um ;)


24 jaar geleden
 
0 +1 -0 -1
in het midde van de pagina
ob_start(); ?
Jorik
Jorik
24 jaar geleden
 
0 +1 -0 -1
Is een functie..
geen idee hoe het werkt, heb ik ergens anders uit gejat :$
Joris van Rooij
Joris van Rooij
24 jaar geleden
 
0 +1 -0 -1
Volgens mij was dat de Output Buffer. Useless als je het mij vraagt, maa die zouer voor moeten zorgen dat alle output van je script pas komt als je er om vraagt met ob_end_flush of zo (schrijf ik het goed??) Dit is ook een vrij recente functie, dus het is ook niet zo gek dat ie niet zo bekend is.
Erick Schluter
Erick Schluter
24 jaar geleden
 
0 +1 -0 -1
Klinkt helemaal te wauwie...
Dit kan ik bv. aan een bestaand gastenboek PHP script toevoegen ?
Jorik
Jorik
24 jaar geleden
 
0 +1 -0 -1
Ja..
als je het uit de database haalt gewoon ipv bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
//select verhaal
$bericht = htmlspecialchars($rij->bericht);
?>


dit doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
//select verhaal
$bericht = ubb($rij->bericht);
?>

dan gaat de parser actief worden :)
Lieven
lieven
24 jaar geleden
 
0 +1 -0 -1
hoe krijg ik het zo IN de database? stel dat ik een button vet maak, dat hij dan automatisch de tag [/B] met het woord ertussen plaatst?
Jorik
Jorik
24 jaar geleden
 
0 +1 -0 -1
:S..
je moet het uit de database ofzow halen, nix erin zetten..

bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
include("ubb.php"); //ubb.php is mijn script dus, de functie

$tekst = "[b ]vettetekst[ /b] en een smilie :) ..";
echo ubb($tekst);
?>

dan zal ik en [ /b] vervangen door <b> en </b> en :) door de smlie-img..

Wel ff spaties weghalen, anders kreeg ik waarschijnlijk PHP hulp errors :P


24 jaar geleden
 
0 +1 -0 -1
mooi script, werkt perfect


24 jaar geleden
 
0 +1 -0 -1
Leuk, je hebt alleen niet aan de beveiliging gedacht!
Met een java-script tussen bijvoorbeeld Afbeelding ben je zo gehacked!

Verder had je een array moeten gebruiken bij je smiles.
DaeDaluz
DaeDaluz
24 jaar geleden
 
0 +1 -0 -1
wat wou je eraan gaan hacken?


24 jaar geleden
 
0 +1 -0 -1
ehm, kun je nog vertellen waarom je 3 functies hebt en welke je dus moet gebruiken. En hoe je ze gebruikt.

Je geeft in je voorbeeld ubb($bericht); aan maar dat moet zeker ubb_code($bericht); zijn ofniet?


24 jaar geleden
 
0 +1 -0 -1
Nou, ik ben inmiddels erachter hoe je script werkt en heb zelfs nog een aanvullende functie om je ubb script waterdicht te maken. Zo kan men eventueel niet meer via javascript cookies stelen.

Voeg de volgende functie toe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php

function noXSS ($input) {
    # add slashes if PHP didn't do it.
    if(!get_magic_quotes_gpc($input))
        $input = addslashes($input);
    
    #replace: javascript,'
    $input = str_replace(array(
            'javascript',
            '"'
    ),array(
            'java script',
            '&#39;'
    ),$input);
    
    #replace: ", <, >,&
    return $input;
}

?>


voeg aan je functie ubb_code als eerste regel het volgende toe:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$string
= noXSS($string);
?>


Als je dit doet, dan werken de javascripts niet meer en heb je een "redelijk" veilige ubb parser.
Jorik
Jorik
24 jaar geleden
 
0 +1 -0 -1
Waarom is het onveilig?.. je kunt het script wel activeren in de src="" tag van de image,..
verder niet, want als je doet hack[ /url] dan wordt het <a href="http://javascript:hack()" target="_blank">hack</a>..

Enne, met javascript kun je volgens mij alleen cliënt side werken.. nix opserver opslaan ofzo..

En met htmlspecialchars() wordt alle < en > veranderd in &lt en &qt {ofzo}, en in de
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? ?>
is dit op een andere manier toegepast.

Dus wat er aan onveilig is: MIJ EEN RAADSEL..
DaeDaluz
DaeDaluz
24 jaar geleden
 
0 +1 -0 -1
hehe je bent niet de enige ;)
Jorik
Jorik
24 jaar geleden
 
0 +1 -0 -1
als nu ff de beterweters vertellen wat onveilig is :|..


24 jaar geleden
 
0 +1 -0 -1
Stel je gebruikt cookies op je site voor de login. Je kunt via javascript dan deze cookies doorsturen naar een andere pagina en vervolgens kan de hacker deze cookies zelf setten en je sessie overnemen. T is maar een voorbeeld van wat zoiemand kan doen.


24 jaar geleden
 
0 +1 -0 -1
http://www.phpfreakz.nl/artikelen.php?aid=106 Check die hacking guide voor meer info en andere beveiligingslekken die veel voorkomen.


24 jaar geleden
 
0 +1 -0 -1
Jammer hieraan is dat als deze ubb parser over een bestaande pagina gaat met daarin een link, de link verkloot wordt doordat http:// omgezet wordt in http<smiley>/
...
DaeDaluz
DaeDaluz
24 jaar geleden
 
0 +1 -0 -1
Anders lees je de andere reacties ff.... dan zie je dat dat probleem als is besproken :)


23 jaar geleden
 
0 +1 -0 -1
hij maakt automatich een highlight van
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?   ?>
maar als je een script hebt waar meerdere '?>' afsluit tags in voor komen dan ziet hij dat als einde script. Is er daarom geen achtig iets in dit script ? of is daar die
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
voor??


23 jaar geleden
 
0 +1 -0 -1
Dit script is echt nog gaarder dan wat ik al had.
Geneste quote tags worden gewoonweg niet geparsed.


23 jaar geleden
 
0 +1 -0 -1
Idd, php parsen naar highlight werkt ook niet goed
Jorik
Jorik
23 jaar geleden
 
0 +1 -0 -1
Klopt wel, code etc. gaat hier niet helemaal lekker, en quotes ook niet.
De rest werkt volgens mij wel goed, als iets niet werkt, mag iemand best een oplossing geven, ik kon alleen toendertijd niets beters maken.


23 jaar geleden
 
0 +1 -0 -1
Misschien kan je beter doen dat ie alles tussen highlight, en niet automatisch highlight. Ik ben trouwens benieuwd hoe ze het hier op phphulp doen. want hier gaat het goed.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
$bar
= "Fooooooooo";
$foo = &bar;
print $foo;
$array = array (
'Slaat nergens op,' => 'toch?',
'Hard,' => 'Dat is het leven....'
);
print_r($array);
?>
Harmen
Harmen
23 jaar geleden
 
0 +1 -0 -1
Waarom werkt de link bij mij niet?? zie plaatje

hoe ik het intype
http://img136.imageshack.us/img136/1399/php7gh.jpg

Hoe het eruit komt te zien:
http://img106.imageshack.us/img106/2002/pict29508qm.jpg
Harmen
Harmen
23 jaar geleden
 
0 +1 -0 -1
Niemand
????
???
??
?
Pieter van Linschoten
Pieter van Linschoten
23 jaar geleden
 
0 +1 -0 -1
Harmen: Dat komt door de smileys...
Daar heb ik ook problemen mee...
Dan zet de parser eerst alles om naar schone HTML, en vervolgens ragt de smilie parser even door elke toets combinatie zoals :/ en dergelijke...
Jorik
Jorik
23 jaar geleden
 
0 +1 -0 -1
Wanneer je de spatie voor de smileys verwijderd, gebeurt dit inderdaad. Vandaar dat deze daar dus ook staat.


21 jaar geleden
 
0 +1 -0 -1
als je ook nog een spatie na de smileys zet, en dan een &nbsp; voor en na de li nk naar het plaatje, dan weet je zeker dat hij er goet uitkomt ;)

Koen


21 jaar geleden
 
0 +1 -0 -1
misschien idee om html/javascript highligth er ook an toe ge voegen? dat is nog beter voor in het algemeen...

Koen


21 jaar geleden
 
0 +1 -0 -1
Voor mensen die in hun database dit willen doen: gewoon de function weghalen, en alles doen met de $bericht=$_POST['bericht'] ofzo, en dan myslq_query("inserrt into berichten values('naam','datum', '".$bericht."')") ofzo...

Koen
Mitchell
Mitchell
21 jaar geleden
 
0 +1 -0 -1
Kent iemand een ubb code voor YouTube? ^_^

Het liefst eentje voor phpbb 2.0.x
Bram
bram
20 jaar geleden
 
0 +1 -0 -1
Ik heb zelf een ubb code toegevoegd, die een functie moet oproepe en iets uit een database halen.

Maar ik krijg de volgende error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\1' at line 1

Kan iemand me soms helpen?
hier is de code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function ubb_chord ($variabele) {
$data = mysql_query("SELECT * FROM akkoorden WHERE naam=".variabele) or die(mysql_error());
echo "<table><tr>";
while($info = mysql_fetch_array( $data ))
{  
...
}
echo "</tr></table>";
}

function replace($text){
        $text = htmlspecialchars($text);
        $text = nl2br($text);

        $text = preg_replace("#\[ubb\](.*?)\[/ubb\]#si",mijnfunctie('\\1'), $text);
                return $text;
}

alvast bedankt ;D
Jesper Diovo
Jesper Diovo
20 jaar geleden
 
0 +1 -0 -1
mijnfunctie veranderen, lijkt mij.

Or die() kun je beter ook even uit je script halen. Or die is een lelijke, lompe manier van foutafhandeling wat je eigenlijk niet eens foutafhandeling kan noemen. Je doodt geen tekst/errors/pagina's.
Mike van Dongen
Mike van Dongen
20 jaar geleden
 
0 +1 -0 -1
@bram:
naam=".variabele)
Is nogal NIET netjes.
Haras
Haras
20 jaar geleden
 
0 +1 -0 -1
Hoe moet ik het in een tekstvak plaatsen ?
Moet het Include zijn of ....
Mike van Dongen
Mike van Dongen
20 jaar geleden
 
0 +1 -0 -1
Wat wil je in een tekstvak hebben?
Bedoel je trouwens met tekstvak een <textarea /> ?
Toby hinloopen
toby hinloopen
20 jaar geleden
 
0 +1 -0 -1
De PHP highlighting werkt niet lekker.

http://www.levensweg.net/topic.php?id=37

Ik probeer em hier werkend te krijgen.

Ik zit em te modden.

Indien ik em goed werkend heb post ik em hier

:edit:
-zucht-

Ik zoek wel een andere :P
Erik
Erik
19 jaar geleden
 
0 +1 -0 -1
Hoe roep ik die UBB Parser aan?
Jonathan Peeman
Jonathan Peeman
19 jaar geleden
 
0 +1 -0 -1
Hoe zorg ik er nou voor dat hij mijn code parsert?
Roel
Roel
18 jaar geleden
 
0 +1 -0 -1
@erik en @jonathan, als je dat niet eens lukt hoe kun je dan in godsnaam een site in php programmeren? Ga eerst een boek PHP programmeren voor dummies lezen of zo.
Ivo K
Ivo K
18 jaar geleden
 
0 +1 -0 -1
@Roel;

juist... Mag ik vragen wat jou gebracht heeft dat je nu twee mensen gaat afkraken die respectievelijk 1 en 1½ jaar geleden gepost hebben dat ze iets niet snapten !?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Roel
Roel
18 jaar geleden
 
0 +1 -0 -1
Sorry vergeten naar de tijd te kijken, maar ik vond het zo belachelijk. Ik snap dat deze site bedoelt is om van te leren maar als je niet eens een functie kunt aanroepen wat ben je dan eigenlijk aan het doen?

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. ubb-parser

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.